κΈ°μ μ λΆλ₯΄λ μλλ‘μ΄λ ν΅μ νλ‘κ·Έλλ°
κΈ°μ μ λΆλ₯΄λ μλλ‘μ΄λ ν΅μ νλ‘κ·Έλλ° - YES24
μλλ‘μ΄λ νλ‘κ·Έλλ° μλ΄μ. μλλ‘μ΄λκ° μ 곡νλ κΈ°λ₯λ€μ κ΅ννμ§ μκ³ λ€μν μ 체μμ μ 곡νλ ν¨ν€μ§μ ν΅μ νλ‘ν μ½ κ·Έλ¦¬κ³ μλ°μ κ³ μ κΈ°λ₯μ μ¬μ©νμ¬ ν΅μ μ μ λ°μ μΈ κΈ°λ₯
www.yes24.com
'Cache-Control'μ΄ νμν μ΄μ
μ±μ μ±λ₯μ ν₯μμν€λ λ°©λ² μ€ νλμΈ μΊμ. ν΄λΌμ΄μΈνΈμμ μΊμ¬λ₯Ό νκ³ , μλ²μμ 컨νΈλ‘€μ΄ κ°λ₯ν Cache-Controlμ λν΄μ μμλ΄ λλ€.
www.blog-dreamus.com
https://www.geeksforgeeks.org/http-headers/?ref=lbp
HTTP headers - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
URLConnectionμμ ν€λ μ 보 μμ±νκΈ°
setRequestProperty(), addRequestProperty() μ¬μ©
URLConnection (Java Platform SE 7 )
Returns a permission object representing the permission necessary to make the connection represented by this object. This method returns null if no permission is required to make the connection. By default, this method returns java.security.AllPermission.
docs.oracle.com
OkHttpμμμ ν€λ μ 보 μμ±νκΈ°
https://square.github.io/okhttp/recipes/#accessing-headers-kt-java
Recipes - OkHttp
private val client = OkHttpClient.Builder() .authenticator(object : Authenticator { @Throws(IOException::class) override fun authenticate(route: Route?, response: Response): Request? { if (response.request.header("Authorization") != null) { return null //
square.github.io
HTTP νλ‘ν μ½μ ν€λ
λ©μμ§ ν€λ Message Header
νμ - RFCμ κ·μ½μΌλ‘ μ΄λ κ² μ ν΄μ§
message-header = field-name ":" [ field-value ]
field-name = token
field-vlaue = *( field-content | LWS )
- νλμ΄λ¦ field-name : 'ν€λ μ΄λ¦'μ΄λΌ λΆλ¦.λ³΄ν΅ ν ν° token μ΄λΌ ννν¨.
- νλ κ° field-value : 'ν€λκ°'μ΄λΌ λΆλ¦. '*( field-content | LWS )' νμμΌλ‘ ννν¨.
- field-content νλ λ΄μ© : μΌλ° λ¬Έμλ μ¬μ μ μλ ν ν° λλ ꡬλΆμ κ·Έλ¦¬κ³ μΈμ©λ¬Έμλ‘ κ΅¬μ±λ¨
- * : λ°λ³΅μ μλ―Ένλ€.
- LWS(Linear White Space) : ν, 곡백, λΌμΈκ΅¬λΆμ μλ―Ένλ€.
ν€λ νλμ μ λ ¬ μμλ μ€μνμ§ μμ.
κ΄νμ μΌλ‘ μΌλ° ν€λ νλ > μμ² ν€λ(μλ΅ ν€λ) > μν°ν° ν€λ νλ μμκ° μΌλ°μ μ.
μΌλ° ν€λGeneral Header
μμ²κ³Ό μλ΅ λ©μμ§ λͺ¨λμμ μΌλ°μ μΌλ‘ μ¬μ©νλ μ 보
general-header = Cache-Control
| Connection
| Date
| Transfer-Encoding
| Upgrade
| Via
Cach-Control
μλ²μ ν΄λΌμ΄μΈνΈ λ΄ μΊμλ₯Ό μ’ λ ν¨μ¨μ μΌλ‘ λ€λ£¨κΈ° μν¨. μΊμ 맀컀λμ¦μ λν μ§μλ¬Έμ μ§μ νλλ° μΌλ°μ μΌλ‘ μ¬μ©νλ€.
μΊμ μ¬μ© λͺ©μ : μμ²κ³Ό μλ΅μ νμ(round-trip)μ μ€μ¬ λ€νΈμν¬μ λμνμ ν₯μμν€λ λͺ©μ
Connection
μλ HTTP ν΅μ μ μμ²κ³Ό μλ΅ μ΄ν, μλ‘ ν΅μ μ λλ κ²μ κΈ°λ³ΈμΌλ‘ νλ€. κ·Έλ¬λ μ΄μ κ°μ ν΅μ λ°©λ²μ λΉλ²ν μ μμ λ°λ₯Έμλ²μ κ³ΌλΆνλ₯Ό μ λ°νλ€. λ°λΌμ μ΄λ¬ν λ¬Έμ ν΄κ²° λ°©μμΌλ‘ Connection ν€λ νλλ₯Ό μ¬μ©ν΄ κΈ°λ³ΈμΌλ‘ μμ², μλ΅ ν μ°κ²°μ μ μ§ν μ§ κ²°μ νλ κΈ°λ₯μ μ 곡νλ€.
Date
λ©μμ§λ₯Ό μμ±ν μκ°μ μλ―Ένλ€. μΌμλ₯Ό ν΅ν΄ ν₯ν λ¬Έμλ₯Ό μ μ§ν μ§ μλλ©΄ λ²λ¦΄μ§λ₯Ό κ²°μ νλ€.
Trasnfer-Encoding
λ©μμ§ λ³Έλ¬Έμμ μ¬μ©ν μΈμ½λ© λ°©μμ μλ―Ένλ€.
μ¬μ© λͺ©μ : HTTP νλ‘ν μ½ λ΄ ν€λλ₯Ό ν¬ν¨ν΄ μ 체 λ°μ΄ν°λ₯Ό μμ νκ² μ μ‘νκΈ° μν΄ 8λΉνΈμ μ μ‘κ·μ½μ λ§μΆμ΄ μνΈνμμΌ μ μ‘ν λ μ¬μ©νλ€.
Upgrade
ν΄λΌμ΄μΈνΈμ μλ²μ ν΅μ νλ μ€ νλ‘ν μ½μ λ³κ²½μ΄ νμν λ μ¬μ©νλ€.
μ : HTTPλ₯Ό μ¬μ©νλ€κ° 보μμ μν΄μ HTTPS νλ‘ν μ½λ‘ λ³κ²½μ΄ νμν κ²½μ° μ¬μ©νλ€.
μλ²μ ν΄λΌμ΄μΈνΈκ° λͺ¨λ μλ‘ μ¬μ©ν νλ‘ν μ½μ μ§μν΄μΌ νκΈ° λλ¬Έμ μ κ·Έλ μ΄λλ μλκ° "κ°λ₯νλ€λ©΄, λ€λ₯Έ νλ‘ν μ½λ‘ λ°κΏ¨μΌλ©΄ νλ€"λΌλ μλ―Έλ‘ μ¬μ©ν¨.
Via
κ²μ΄ν¬μ¨μ΄λ νλ½μλ μλ²μ μμ² λ©μμ§λ₯Ό λ§λ€μ΄ λ³΄λΌ λ λ°λμ Via νλλ₯Ό μ¬μ©ν΄μΌνλ€. μμΌλ‘ ν΄λΌμ΄μΈνΈμ μλ΅ λ©μμ§λ₯Ό μ μ‘νλ©΄ Via νλλ₯Ό μ¬μ©ν΄ μμ μ΄ κ²μ΄νΈμ¨μ΄λ νλΌμλΌλ μ¬μ€μ μλ €μ£Όμ΄μΌ νλ€.
Warning
μλ²μ κ²½κ³ λ₯Ό μλ¦°λ€.
μμ² ν€λ Request-Header
μμ²μ λν μΆκ°μ μΈ μ 보λ₯Ό λ΄κ³ μλ€.
request-header = Accept
| Accept-Charset
| Accept-Encoding
| Accept-Language
| Authorization
| Expect
| From
| Host
| If-Match
| If-Modified-Since
| If-None-Match
| If-Range
| If-Unmodified-Since
| Max-Forwards
| Proxy-Authorization
| Range
| Referer
| TE
| User-Agent
Accept
ν΄λΌμ΄μΈνΈ μμ μ΄ μ²λ¦¬ν μ μλ λ―Έλμ΄ νμ μ μ§μ ν΄ μλ²μκ² μμ²νλ€.
νκΈ°
Accept = "Accept" ":" #( media-range [ accept-params ] )
media-range = ( "*/*" | (type "/" subtype ) ) *( ";" parameter )
accept-params = ";" "q" "=" qvalue *( accept-extension )
accept-extension = ";" token [ "=" ( token | quoted-string ) ]
- # : μ΅μ 2κ° μ΄μμ μμ
- ; : ꡬλΆμλ‘ μμ ν ν°μ λν μΆκ°μ μΈ μ 보λ₯Ό μ리기 μν΄ μ¬μ©νλ€.
- | : 'λλ'μ μλ―Έλ‘ μ¬μ©νλ€.
μ
Accept: audio/*; q=0.2; audio/basic
- q : νμ§λ±κΈ. Quality factor. μλμ μ€μμ±(κ°μ€μΉ)λ₯Ό νμνλ€. μ΅μκ° 0λΆν° μ΅λκ° 1κΉμ§ λ²μμ μ€μλ‘ μ ννν μ μλ€. μνλ νμ§μ λν μλμ μΈ μ§ μ νλ₯Ό νννλ€. νμ§λ±κΈμ ꡬ체μ μΈ ννμΌμλ‘ λμ μ°μ μμλ₯Ό κ°λλ€. λ³λ νκΈ°κ° μμΌλ©΄ λν΄νΈ 1λ‘ ν΄μνλ€. 0μΌλ‘ νννλ©΄ ν΄λΌμ΄μΈνΈμμ μμ©ν μ μλ νμ μ λνλΈλ€.
> κΈ°λ³Έμ μΈ μ€λμ€ νμ ("audio/basic")μ μ νΈνμ§λ§ 80%μ΄νλ‘ μ§μ΄ λ¨μ΄μ§λ©΄ 'audio/*'μ²λΌ λ€λ₯Έ μ€λμ€ νμ μΌλ‘ μ μ‘ν΄ λ¬λΌ.
Accept-Charset
ν΄λΌμ΄μΈνΈκ° μλ΅ λ©μμ§ λ΄ μν°ν°λ‘ μμ© κ°λ₯ν λ¬Έμμ μ λνλΈλ€. νκΈμ΄λ νμλ₯Ό νμν λ μ¬μ©νλ 'UTF-8'μ΄λ 'EUC-KR', 'MS949', 'UTF-16'κ³Ό κ°μ λ¬Έμμ μ λνλΈλ€.
Accept-Encoding
μλ΅ λ©μμ§μμ μ¬μ©ν μ μλ νλ¬Έμ΄λ μμΆλ°©μμ λͺ μν λ μ¬μ©νλ€.
Accept-Language
Acceptμ μ μ¬νκ² μμ² λ©μμ§μ λν΄ μλ΅ λ©μμ§κ° μ¬μ©ν μ μλ μΈμ΄λ₯Ό μ νν΄ μ€ κ²μ μμ²νλ€.
Authorization
μ¬μ©μ μΈμ¦μ νμλ‘ νλ κ²½μ°, μ¬μ©μμ μ΄λ¦κ³Ό μνΈλ₯Ό μ λ¬νκΈ° μνμ¬ μ¬μ©νλ€.
From
λ¬Έμλ₯Ό μμ²ν μ¬μ©μμ e-mail μ£Όμλ₯Ό μ λ¬νλ€.
If-Modified-Since
μμ²ν URI 리μμ€κ° νΉμ μΌμ μ΄ν λ³κ²½λ κ²½μ°, ν΄λΉ 리μμ€λ₯Ό λ€μ μ μ‘ν΄ λ¬λΌκ³ μμ²ν λ μ¬μ©νλ€.
Range
https://www.geeksforgeeks.org/http-headers-range/
HTTP headers | Range - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
μλ²μμ λ¬Έμλ₯Ό λλ μ λΆλΆλ³λ‘ κ°μ Έμ€λλ‘ λ²μλ₯Ό μ§μ ν¨.
Referer
λ§ν¬λ‘ μ 곡νλ λ¬Έμμ URIλ₯Ό μ μ‘νλ€.
User-Agent
https://www.geeksforgeeks.org/http-headers-user-agent/?ref=rp
HTTP headers | User-Agent - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
ν΄λΌμ΄μΈνΈ μννΈμ¨μ΄μ μ 보λ₯Ό μ λ¬νλ€. μ¬μ©μ μμ΄μ νΈλ ν΄λΌμ΄μΈνΈμμ μ¬μ©νλ μ ν리μΌμ΄μ μ λ§νλ€.
μ΄ μ 보λ λ€μν μΉ λΈλΌμ°μ λ° λ€μν μ΄μ체μ μ λ€μν μΉμ¬μ΄νΈλ€μ μ 곡νκΈ° μν΄ μ¬μ©λλ€.
μλ΅ ν€λ Response-Header
μλ²κ° μμ² λ©μμ§λ₯Ό λ°κ³ κ·Έμ λν μλ΅ λ©μμ§ λ΄ μν λΌμΈλ§μΌλ‘λ μ λ¬νκΈ° μ΄λ €μ΄ μ 보λ₯Ό ν΄λΌμ΄μΈνΈμκ² μ λ¬νκΈ° μν΄ μ¬μ©νλ€.
response-header = Age
| Location
| Retry-After
| Server
| Warning
| WWW-Authenticate
Age
νλ‘μ μλ²μμ μ¬μ©νλ€. μλ³Έ μλ²κ° ν΄λΌμ΄μΈνΈμ μ λ¬ν λ°μ΄ν°λ₯Ό λ§λ μκ°μ ν΄λΌμ΄μΈνΈμκ² μ λ¬ν λ μ¬μ©νλ€. μ΄ λ¨μλ‘ νμλλ€.
Location
리λ€μ΄λ νΈλ λ¬Έμμ μ λ URIλ₯Ό μλ €μ€λ€.
Retry-After
μλ΅ μν μ½λ 503κ³Ό ν¨κ» μ¬μ©νλ€. "μΌλ§ μκ°μ΄ κ²½κ³Όλ μ΄ν λ°μ΄ν° μμ²μ λ€μ μλνλΌ" μλ―Έλ₯Ό κ°μ§λ€.
Server
ν΄λΌμ΄μΈνΈμ μμ²μ λν΄, μλ³Έ μλ²μ μν΄ μ¬μ©λκ³ μλ μννΈμ¨μ΄λ₯Ό λνλΈλ€.
WWW-Authenticate
μΈμ¦λ°©λ²μ μ μνλ€. μνμ½λ 401μΌ λ, νμν μΈμ¦μ¬νμ μλ΅ λ©μμ§λ‘ μ λ¬νλ€. μλ²κ° μμ© κ°λ₯ν μ¬μ©μ μΈμ¦μ ν΄λΌμ΄μΈνΈμ μꡬν λ μ¬μ©νλ€.
μν°ν° ν€λ Entity Header
μλ²λ HTTP λ²μ , μμ² λ©μλλ μλ΅ μν μ½λ λ±μ μν΄ μ νλ°μ§ μλλ€λ©΄, μμ² λ©μμ§λ μλ΅ λ©μμ§μ ν¨κ» μν°ν°λ₯Ό μ μ‘ν μ μλ€. μν°ν°λ μν°ν° ν€λ νλμ μν°ν° λ³Έλ¬Έ(λλ λ©μμ§ λ³Έλ¬Έ)μΌλ‘ ꡬμ±λμ΄ μλ€. κ²½μ°μ λ°λΌ μ΄λ€ μλ΅ λ©μμ§λ μν°ν° ν€λλ§μΌλ‘ ꡬμ±λ μ μλ€.
μν°ν° ν€λ νλλ μν°ν° λ³Έλ¬Έμ λν μ 보λ₯Ό μ μνλ€.
entity-header = Allow
| Content-Encoding
| Content-Language
| Content-Length
| Content-Location
| Content-MD5
| Content-Range
| Content-Type
| ETag
| Expires
| Last-Modified
| extension-header
Allow
Request-URIκ° μ§μ κ°λ₯ν λ©μλ λͺ©λ‘μ νμνλ€. μ§μ κ°λ₯ν λ©μλλ€μ μ 보λ₯Ό ν΄λΌμ΄μΈνΈμ μ리기 μν΄ μ¬μ©νλ€.
Allow: GET, HAED, PUT
Content-Encoding
μν°ν° λ³Έλ¬Έμ΄ μμΆλμκ±°λ μνΈνλμ΄μμ κ²½μ°, κ·Έ μΈμ½λ© νμμ μμ μΈ‘μ μ λ¬νκΈ° μν΄ μ¬μ©νλ€. λ§μ½ μν°ν°μ 볡μμ μμΆ μΈμ½λ©μ μ μ©νμΌλ©΄, μΈμ½λ© λ΄μ©μ μ μ©λ μμμ λ°λΌ μ΄κ±°νλ€.
Content-Type
μν°ν° λ³Έλ¬Έμ λ―Έλμ΄ νμ μ νμνκ±°λ λλ μν°ν° λ³Έλ¬Έμ λ°μ‘νκΈ° μ μ μμΌλ‘ λ°μ‘ν λ―Έλμ΄ νμ μ νμνλ€.
Content-Length
μν°ν° λ³Έλ¬Έμ ν¬κΈ°λ₯Ό λ°μ΄νΈλ‘ νκΈ°νλ€.
Content-Location
λ©μμ§μ ν¬ν¨λ μν°ν°κ° μ΄λ 리μμ€μ μμΉνμλμ§μ λν μ 보λ₯Ό μ 곡νλ€.
ETag
Entity-tagμ μ½μ. μΉμλ²μ μ¬μ©νλ 리μμ€ λ²μ μ μλ €μ€λ€. κ°μ URLμ΄λΌ νλλΌλ 리μμ€κ° λ³κ²½λμλ€λ©΄, Etagλ‘ λ³κ²½λ λ²μ μ μλ €μ€λ€.
Expires
μΈμ μ¬λΌμ§ μ§ μκ°, λ μ§λ₯Ό μ μνλ€.
μν°ν° λ³Έλ¬Έ Entitiy Body (λλ λ©μμ§ λ³Έλ¬Έ)
μμ μλ μκ³ , μμ μλ μλ€. μμ² λλ μλ΅ λ©μμ§ λ΄ λ©μμ§ λ³Έλ¬Έμ μ‘΄μ¬ μ¬λΆλ λ©μμ§ ν€λμ Content-Length λλ Transfer-Encoding ν€λ νλλ‘ νμΈ κ°λ₯νλ€. Content-Length λλ Transfer-Encoding ν€λ νλκ° μλ€λ©΄, μμ² λλ μλ΅κ³Ό κ΄λ ¨λ μν°ν° λ³Έλ¬Έμ μ μ‘νλ€λ κ²μ μλ―Ένλ€.
'λΉ κ΅¬λ© μ±μ°κΈ°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java][Thread] Happens-before relationship (0) | 2023.03.03 |
---|---|
[Kotlin] Obejctλ‘ μ μΈν Singleton κ°μ²΄μ μμ±μ Lazy νκ°? (1) | 2023.03.03 |
[Android][Java][μνΈν] MessageDigest (0) | 2023.02.28 |
[Android][View] decor view (0) | 2023.02.16 |
[Android][Lint] Missing baselineAligned attribute (0) | 2023.02.14 |