遇見的http協議的一些難題

2021-08-18 19:56:32 字數 918 閱讀 3175

重構以前的**,**是從幾年前jpa遷移到springmvc+spring+mybatis,並且利用springboot進行微服務部署,springcloud進行分布式。

期間讓我自己寫乙個feign的方法呼叫其他服務,這個介面很簡單,但是我卻寫了大半天才完成。接下來我將介紹一下自己遇見的一些問題

(1)首先,因為別人並沒有在eureka註冊,我就不知道@feignclient的name屬性寫什麼,後來了解到,可以通過該註解的url屬性:url一般用於除錯,可以手動指定@feignclient呼叫的位址。

(2) 在訪問別人請求的時候,有一系列的要求:最主要的是需要在請求頭里放置引數,這個難題當時難倒我了。順道回憶一下http協議吧。

①http協議是基於7層網路協議裡面的傳輸層tcp傳輸協議。而http不像tcp,會佔據系統較多的資源。

②http協議是一種短連線,當客戶端發出請求,服務端接受到客戶端的請求,產生響應,返回給客戶端,然後斷開連線。

③http協議,會認為每次請求都是一次新的請求,因此需要乙個識別碼,讓服務端知道這次的請求是上乙個客戶端的請求,以便完成操作,這就是session的由來,session在一定程度上依賴cookie。(這是自己的理解,可能不太正確)

④http協議分為了幾個部分:

請求資訊分為了4部分:

1.請求行(包含了請求方式、url路徑、http協議版本)例如:get /x.html http/1.1

相應資訊分為了4部分:

1.狀態行(描述協議版本,狀態碼,以及狀態描述)

2.響應頭(已鍵值對方式,描述服務端相關資訊)

3.空行(作為響應頭和訊息體之間的標識)

4.訊息體(描述伺服器傳輸給客戶端的資訊)

charset=utf-8;

」},這樣就能夠成功傳輸請求頭 其中@requestheader("key")string value。

http的一些請求

get 和 post get 從指定的資源請求資料。get 請求可被快取 get 請求保留在瀏覽器歷史記錄中 get 請求可被收藏為書籤 get 請求不應在處理敏感資料時使用 get 請求有長度限制 get 請求只應當用於取回資料 post 向指定的資源提交要被處理的資料 post 請求不會被快取 ...

HTTP的一些概念

1.什麼是 是非同步程式設計時的基礎,將後續邏輯封裝成起始函式的引數,逐層巢狀 2.什麼是同步 非同步?非同步是指 傳送方發出資料後,不等接收方發回響應,接著傳送下個資料報的通訊方式。3.什麼是i o?磁碟的寫入 in 磁碟的讀取 out 4.什麼的單執行緒 多執行緒?一次只能執行乙個程式叫做單執行...

協議的一些概念

tpc ip協議是傳輸層協議,主要解決資料如何在網路中傳輸,而http是應用層協議,主要解決如何包裝資料。關於tcp ip和http協議的關係,網路有一段比較容易理解的介紹 我們在傳輸資料時,可以只使用 傳輸層 tcp ip協議,但是那樣的話,如果沒有應用層,便無法識別資料內容,如果想要使傳輸的資料...