Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Header agen pengguna - singkatan untuk penyimpanan mysql

Tidak ada aturan untuk string User-Agent, jadi tidak ada cara untuk membuat parser yang sepenuhnya benar dan tahan masa depan. Ada pola umum:

User-Agent: <engine-string> <engine-string> ...

Dimana engine-string memiliki bentuk:

<agent-name> (<comment>; <comment>; ...)

Setiap mesin string (saya hanya menyebutnya begitu dari pemahaman saya, yang mungkin tidak benar) mungkin atau mungkin tidak memiliki komentar.

Misalnya:

Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) ↲
AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e ↲
Safari/8536.25 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

(Ini adalah string tunggal, saya hanya memecahnya menjadi beberapa baris.) Tampaknya, setiap kali seseorang melakukan fork dari mesin browser, mereka hanya menambahkan hal mereka sampai akhir. Jadi kami memiliki beberapa browser "Mozilla" abstrak (warisan dari "Perang Browser Pertama") yang menganggapnya ada di iPhone. Kemudian kita melihat bahwa ada WebKit (yang mengingat bahwa ia lahir sebagai KHTML beberapa waktu yang lalu). Lalu ada beberapa modifikasi Version/6.0, yang kemudian dimodifikasi menjadi Mobile/10A5376e, menjadi Safari/8536.25, yang akhirnya mengungkap rahasia bahwa itu sebenarnya adalah bot Google seluler.

Contoh lain:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; ↲
InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; ↲
.NET CLR 3.5.30729; .NET CLR 1.1.4322)

Ini adalah mesin tunggal, tetapi memiliki banyak hal untuk dikatakan dalam tanda kurung.

Jadi pengamatan umumnya adalah:

  • string mesin terakhir adalah yang paling penting,
  • komentar terakhir dalam tanda kurung kurang penting.

Dengan mengingat hal itu, ide saya adalah mengurai string ke dalam mesin ini dan token komentar, kemudian dari setiap bagian mesin membuang komentar mulai dari, katakanlah, yang kelima. Kemudian, jika masih belum cukup, buang bagian mesin mulai dari yang kedua (yang pertama sering kali merupakan "Mozilla" abstrak, tetapi sering kali memiliki komentar yang bermanfaat; juga kadang-kadang sebenarnya sesuatu yang konkret, terutama untuk perayap web).

Saat menguraikan, kita perlu memperhitungkan bahwa terkadang ada string yang tidak mengikuti format ini. Mereka dapat disimpan ke file log untuk pemeriksaan nanti dan kemudian dipotong dengan panjang yang dibutuhkan agar sesuai dengan database.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabel MySQL -> Bisakah Anda mengembalikan baris yang sama beberapa kali, dalam kueri yang sama?

  2. penggantian mysql_num_rows untuk direkomendasikan?

  3. Prosedur tersimpan MySql:Bagaimana cara memilih dari tabel prosedur?

  4. Kueri SQL yang tidak efisien

  5. mysql pilih count union