คำถามติดแท็ก http

Hypertext Transfer Protocol (HTTP) เป็นโปรโตคอลเครือข่ายระดับแอปพลิเคชันที่ใช้สำหรับการถ่ายโอนเนื้อหาบนเวิลด์ไวด์เว็บ

8
อ่านเนื้อหาการตอบสนองข้อผิดพลาดใน Java
ใน Java รหัสนี้แสดงข้อยกเว้นเมื่อผลลัพธ์ HTTP คือช่วง 404: URL url = new URL("http://stackoverflow.com/asdf404notfound"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.getInputStream(); // throws! ในกรณีของฉันฉันรู้ว่าเนื้อหาเป็น 404 แต่ฉันก็ยังอยากอ่านเนื้อหาของคำตอบอยู่ดี (ในกรณีจริงของฉันรหัสตอบกลับคือ 403 แต่เนื้อหาของการตอบกลับอธิบายเหตุผลของการปฏิเสธและฉันต้องการแสดงให้ผู้ใช้เห็น) ฉันจะเข้าถึงเนื้อหาตอบสนองได้อย่างไร?


4
http ให้มีชีวิตอยู่ในยุคใหม่
ดังนั้นตามที่ผู้เขียน haproxy ผู้ที่รู้เรื่อง http: Keep-alive ถูกคิดค้นขึ้นเพื่อลดการใช้งาน CPU บนเซิร์ฟเวอร์เมื่อ CPU ช้าลง 100 เท่า แต่สิ่งที่ไม่ได้กล่าวคือการเชื่อมต่อแบบต่อเนื่องใช้หน่วยความจำจำนวนมากในขณะที่ไม่มีใครใช้งานได้ยกเว้นลูกค้าที่เปิดใช้งาน ปัจจุบันในปี 2009 ซีพียูมีราคาถูกมากและหน่วยความจำยังคง จำกัด อยู่ที่สถาปัตยกรรมหรือราคาเพียงไม่กี่กิกะไบต์ หากไซต์ต้องการให้มีชีวิตอยู่แสดงว่ามีปัญหาอย่างแท้จริง ไซต์ที่มีการโหลดสูงมักจะปิดการใช้งาน Keep-alive เพื่อรองรับจำนวนไคลเอ็นต์พร้อมกันสูงสุด ข้อเสียที่แท้จริงของการไม่มี Keep-alive คือเวลาแฝงที่เพิ่มขึ้นเล็กน้อยในการดึงวัตถุ เบราว์เซอร์เพิ่มจำนวนการเชื่อมต่อพร้อมกันเป็นสองเท่าบนไซต์ที่ไม่ได้เก็บรักษาไว้เพื่อชดเชยสิ่งนี้ (จากhttp://haproxy.1wt.eu/ ) สิ่งนี้สอดคล้องกับประสบการณ์ของคนอื่น ๆ หรือไม่? คือไม่มีชีวิต - ตอนนี้ผลลัพธ์แทบไม่เป็นที่สังเกตหรือไม่? (เป็นที่น่าสังเกตว่าด้วย websockets ฯลฯ - การเชื่อมต่อจะยังคง "เปิด" ไม่ว่าจะอยู่ในสถานะใดก็ตาม - สำหรับแอปที่ตอบสนองได้ดีมาก) มีผลมากกว่าสำหรับผู้ที่อยู่ห่างไกลจากเซิร์ฟเวอร์หรือหากมีสิ่งประดิษฐ์จำนวนมากที่จะโหลดจากโฮสต์เดียวกันเมื่อโหลดหน้าเว็บ (ฉันคิดว่าสิ่งต่างๆเช่น CSS, รูปภาพและ JS มาจาก CDN …

9
คำขอไคลเอ็นต์ Java HTTP พร้อมการหมดเวลาที่กำหนด
ฉันต้องการทำการทดสอบ BIT (การทดสอบในตัว) กับเซิร์ฟเวอร์จำนวนหนึ่งในระบบคลาวด์ของฉัน ฉันต้องการให้คำขอล้มเหลวเมื่อหมดเวลามาก ฉันจะทำสิ่งนี้กับ java ได้อย่างไร? การลองทำตามด้านล่างดูเหมือนจะไม่ได้ผล public class TestNodeAliveness { public static NodeStatus nodeBIT(String elasticIP) throws ClientProtocolException, IOException { HttpClient client = new DefaultHttpClient(); client.getParams().setIntParameter("http.connection.timeout", 1); HttpUriRequest request = new HttpGet("http://192.168.20.43"); HttpResponse response = client.execute(request); System.out.println(response.toString()); return null; } public static void main(String[] args) throws ClientProtocolException, IOException …

6
จะจัดการคุกกี้หลายตัวที่มีชื่อเดียวกันได้อย่างไร?
ตัวอย่างเช่นฉันมีแอปพลิเคชันที่ส่งส่วนหัว HTTP ต่อไปนี้เพื่อตั้งค่าเป็นคุกกี้ชื่อ "a": Set-Cookie: a=1;Path=/;Version=1 Set-Cookie: a=2;Path=/example;Version=1 หากฉันเข้าถึง/exampleเซิร์ฟเวอร์ทั้งสองเส้นทางถูกต้องดังนั้นฉันจึงมีคุกกี้สองตัวที่ชื่อว่า "a"! เนื่องจากเบราว์เซอร์ไม่ได้ส่งข้อมูลเส้นทางใด ๆ จึงไม่สามารถแยกแยะคุกกี้ทั้งสองได้ Cookie: a=2; a=1 กรณีนี้ควรจัดการอย่างไร? เลือกอันแรกไหม สร้างรายการที่มีค่าคุกกี้ทั้งหมดหรือไม่ หรือกรณีดังกล่าวควรถือเป็นความผิดพลาดของผู้พัฒนา?
92 http  cookies 

5
คำขอ HTTP PUT จำเป็นต้องมีเนื้อหาหรือไม่
ฉันมีปัญหาในการค้นหาข้อกำหนดที่แน่นอนของสิ่งนี้ในมาตรฐาน ฉันมีไคลเอนต์ HTTP ที่ไม่รวมContent-Length: 0ส่วนหัวเมื่อทำการร้องขอ PUT โดยที่ฉันไม่ได้ระบุเนื้อความและเซิร์ฟเวอร์ที่ทำให้คำขอดังกล่าวสับสนและฉันสงสัยว่าฉันควรโทษโปรแกรมใด
92 http 

6
เราสามารถสร้างรหัสสถานะ HTTP ที่กำหนดเองได้หรือไม่?
ฉันมีบริการ REST และ WCF และต้องการส่งรหัสสถานะที่กำหนดเองตามการดำเนินการ ตัวอย่างเมื่อการตรวจสอบความถูกต้องล้มเหลวฉันต้องการส่ง HTTP 444 และเมื่อการอนุญาตล้มเหลวฉันต้องการส่ง HTTP 455 คำถามคือเราจะตรวจสอบความถูกต้องสำหรับทั้ง SOAP และ REST web services ได้อย่างไร ในไคลเอนต์รหัสข้อผิดพลาดทำงานอย่างไรเนื่องจากเมื่อคุณส่ง HTTP 400/500 จากบริการ WCF (โดยใช้ SOAP) จะมีข้อยกเว้นเกิดขึ้นกับไคลเอ็นต์ที่แสดงรหัสสถานะ ตอนนี้ถ้าฉันส่งรหัสสถานะที่กำหนดเองใหม่ไคลเอนต์จะจัดการกับสิ่งนี้อย่างไร
92 c#  asp.net  wcf  http  wcf-rest 

3
วิธีการโพสต์คำขอ JSON โดยใช้ Apache HttpClient
ฉันมีสิ่งต่อไปนี้: final String url = "http://example.com"; final HttpClient httpClient = new HttpClient(); final PostMethod postMethod = new PostMethod(url); postMethod.addRequestHeader("Content-Type", "application/json"); postMethod.addParameters(new NameValuePair[]{ new NameValuePair("name", "value) }); httpClient.executeMethod(httpMethod); postMethod.getResponseBodyAsStream(); postMethod.releaseConnection(); มันกลับมาเรื่อย ๆ พร้อมกับ 500 ผู้ให้บริการบอกว่าฉันต้องส่ง JSON วิธีทำกับ Apache HttpClient 3.1+

4
ตัวอย่าง C ง่ายๆของการทำ HTTP POST และใช้การตอบสนอง
ฉันต้องการสร้างแอปพลิเคชัน C ที่เรียบง่ายซึ่งทำโพสต์ HTTP ใช้พารามิเตอร์สองสามตัวและใช้พารามิเตอร์เหล่านี้เพื่อสร้าง URL ฉันแค่ต้องการทำ HTTP POST แบบง่ายๆและรับการตอบสนองโดยไม่ต้องใช้ curl (ไลบรารีไม่ได้และจะไม่ได้รับการติดตั้งบนเครื่องซึ่งจำเป็นต้องเรียกใช้) รหัสหลอก: กระบวนการ 2 args ใส่ args ลงใน URL เทมเพลต: http://api.somesite.com/apikey=ARG1&command=ARG2 ทำ POST บน URL ที่สร้างขึ้น ใช้การตอบสนอง การค้นหา Google และ SO ของฉันไม่ได้ให้ผลอะไรในเรื่องนี้
92 c  http  http-post 

6
รหัสสถานะ HTTP เป็น 0 มีความหมายหรือไม่?
ดูเหมือนว่าเมื่อคุณสร้าง XMLHttpRequest จากสคริปต์ในเบราว์เซอร์หากเบราว์เซอร์ถูกตั้งค่าให้ทำงานแบบออฟไลน์หรือหากดึงสายเคเบิลเครือข่ายออกคำขอจะเสร็จสมบูรณ์โดยมีข้อผิดพลาดและมีสถานะ = 0 0 ไม่อยู่ในรายการที่อนุญาต รหัสสถานะ HTTP รหัสสถานะ 0 หมายถึงอะไร? มันหมายถึงสิ่งเดียวกันในทุกเบราว์เซอร์และสำหรับยูทิลิตี้ไคลเอ็นต์ HTTP ทั้งหมดหรือไม่ เป็นส่วนหนึ่งของข้อมูลจำเพาะ HTTP หรือเป็นส่วนหนึ่งของข้อกำหนดโปรโตคอลอื่น ๆ หรือไม่ ดูเหมือนว่าจะหมายความว่าไม่สามารถส่งคำขอ HTTP ได้เลยบางทีอาจเป็นเพราะไม่สามารถแก้ไขที่อยู่เซิร์ฟเวอร์ได้ ข้อความแสดงข้อผิดพลาดใดเหมาะสมที่จะแสดงให้ผู้ใช้เห็น "คุณไม่ได้เชื่อมต่ออินเทอร์เน็ตหรือเว็บไซต์กำลังประสบปัญหาหรืออาจมีข้อผิดพลาดในการพิมพ์ที่อยู่"? ฉันควรเพิ่มสิ่งนี้เพื่อที่ฉันจะเห็นพฤติกรรมใน FireFox เมื่อตั้งค่าเป็น "ทำงานออฟไลน์" แต่ไม่ใช่ใน Microsoft Internet Explorer เมื่อตั้งค่าเป็น "ทำงานออฟไลน์" ใน IE ผู้ใช้จะได้รับกล่องโต้ตอบที่ให้ตัวเลือกในการออนไลน์ FireFox ไม่แจ้งผู้ใช้ก่อนส่งคืนข้อผิดพลาด ฉันขอสิ่งนี้เพื่อตอบสนองต่อคำขอให้ "แสดงข้อความแสดงข้อผิดพลาดที่ดีกว่า" สิ่งที่ Internet Explorer ทำได้ดี จะบอกผู้ใช้ว่าอะไรเป็นสาเหตุของปัญหาและให้ทางเลือกในการแก้ไขแก่ผู้ใช้ ในการให้ UX ที่เทียบเท่ากับ …

8
Android: การบันทึกคำขอ HTTP ด้วยอุปกรณ์ Android ที่ไม่ได้รูท
ฉันมีแอปพลิเคชั่น Android ที่ใช้โถของบุคคลที่สามอยู่ คำขอ HTTP ถูกส่งจาก jar ของบุคคลที่สามไปยังเซิร์ฟเวอร์เมื่อแอปพลิเคชันกำลังทำงาน ฉันต้องการจับ HTTP Request ที่ส่งจาก jar ของบุคคลที่สาม ฉันสงสัยว่ามีวิธีง่ายๆในการใช้งานกับอุปกรณ์ที่ไม่ได้รูทหรือไม่ ในการเริ่มต้น: ฉันลองดาวน์โหลด "proxyDroid" แต่ต้องใช้โทรศัพท์ที่รูทแล้วฉันได้ลองดาวน์โหลด "shark for root" ด้วย "shark reader" ซึ่งต้องใช้อุปกรณ์ที่รูทเช่นกันฉันลองใช้แอปพลิเคชันอื่น ๆ อีกมากมายซึ่งสามารถจับคำขอที่สมบูรณ์ได้ เป็นอุปกรณ์ที่รูท ฉันต้องการบางสิ่งที่ fiddler / Wirehark สามารถทำได้สำหรับ windows เครื่องวิเคราะห์แพ็กเก็ตเครือข่ายที่สามารถรวมเข้ากับแอปพลิเคชัน Android ที่สามารถให้วัตถุที่ร้องขอพร้อมฟิลด์ส่วนหัวทั้งหมด

7
ทำการ redirect_to อย่างถูกต้อง: กลับไปที่ Ruby on Rails เมื่อผู้อ้างอิงไม่พร้อมใช้งาน
ฉันมีปัญหากับredirect_to :back. ใช่เป็นผู้อ้างอิง ฉันมักจะได้รับข้อยกเว้น (ActionController :: RedirectBackError) "ไม่ได้ตั้งค่า HTTP_REFERER ในคำขอให้ดำเนินการนี้ดังนั้นจึงไม่สามารถเรียกใช้ redirect_to: back ได้สำเร็จหากเป็นการทดสอบโปรดระบุ request.env [\" HTTP_REFERER \ "]" ฉันตระหนักดีว่านี่เป็นผลมาจากการที่ไม่มีผู้อ้างอิง ตัวอย่างเช่นมีวิธีใดบ้างที่สามารถตั้งค่าตัวแปรเซสชันในการเข้าถึงแต่ละครั้งที่มีการเยี่ยมชมหน้าสุดท้ายและเมื่อ HTTP_REFERER ไม่พร้อมใช้งานให้ใช้ตัวแปรเซสชันนี้เพื่อเปลี่ยนเส้นทางไป

15
วิธีตรวจสอบฝั่งเซิร์ฟเวอร์ว่าปิดใช้งานคุกกี้หรือไม่
ฉันจะตรวจจับบนเซิร์ฟเวอร์ (ฝั่งเซิร์ฟเวอร์) ได้อย่างไรว่าคุกกี้ในเบราว์เซอร์ถูกปิดใช้งานหรือไม่ เป็นไปได้ไหม? คำอธิบายโดยละเอียด:ฉันกำลังประมวลผลคำขอ HTTP บนเซิร์ฟเวอร์ ฉันต้องการตั้งค่าคุกกี้ผ่านSet-Cookieส่วนหัว ฉันต้องการทราบในเวลานั้นว่าคุกกี้จะถูกกำหนดโดยเบราว์เซอร์ไคลเอนต์หรือคำขอของฉันในการตั้งค่าคุกกี้จะถูกละเว้น

2
ส่วนหัวการให้สิทธิ์ OAuth 2.0
ฉันต้องการพัฒนา SDK ที่ห่อหุ้มฟังก์ชัน OAuth 2.0 ฉันได้ตรวจสอบความแตกต่างระหว่าง OAuth 1.0 และ 2.0 แล้วและฉันมีความสับสนเกี่ยวกับ Authorization Header ( 1.0และ 2.0 ) พารามิเตอร์โปรโตคอล OAuth 1.0 สามารถส่งโดยใช้ส่วนหัว "การอนุญาต" ของ HTTP แต่ฉันไม่พบสิ่งนี้ที่อธิบายไว้ในปัจจุบัน OAuth 2.0 แบบร่าง OAuth 2.0 รองรับส่วนหัวการให้สิทธิ์หรือไม่ ใน OAuth 1.0 ส่วนหัวของคุณจะมีลักษณะดังนี้: Authorization: OAuth realm="Example", oauth_consumer_key="0685bd9184jfhq22", oauth_token="ad180jjd733klru7", oauth_signature_method="HMAC-SHA1", oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D", oauth_timestamp="137131200", oauth_nonce="4572616e48616d6d65724c61686176", oauth_version="1.0"
91 http  oauth-2.0 

4
วิธีการร้องขอ PUT และ DELETE HTTP มีประโยชน์อย่างไร
ฉันได้อ่านสิ่งต่างๆมากมายเกี่ยวกับเรื่องนี้ แต่ไม่สามารถหาข้อสรุปในหัวข้อนี้ได้ แต่ฉันไม่เคยใช้เมธอด PUT หรือ DELETE HTTP Request แนวโน้มของฉันคือใช้ GET เมื่อสถิติของระบบ (แอปพลิเคชันหรือเว็บไซต์ของฉัน) อาจไม่ได้รับผลกระทบ (เช่นรายการผลิตภัณฑ์) และใช้ POST เมื่อได้รับผลกระทบ (สั่งซื้อ) มันไม่เพียงพอหรือฉันขาดอะไรไป?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.